package com.alks.function.service.common;

import com.alks.entity.data.page.PageParam;
import com.alks.entity.data.page.PageRecord;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.back.MtlSubRequest;
import com.alks.function.data.request.procurement.SdVendorRequest;
import com.alks.function.data.request.stockdept.pcfactorystockwork.LotComMtlRequest;

import java.util.List;
import java.util.Map;

public interface BackService {
    ResponseInfo vendorQuery();

    String getVendorNoByName(String vendorNo);

    ResponseInfo mtlTypeQuery();

    ResponseInfo deptQuery();

    ResponseInfo inSlipReasonQuery();

    ResponseInfo outSlipReasonQuery();

    ResponseInfo mtlTypeLMSQuery(String mtlType);

    ResponseInfo getAllOrderCondition();

    ResponseInfo getDutyCondition();

    ResponseInfo getMtlType3();

    ResponseInfo getMtlName3(String mtlName,String mtlNo,Integer pageNum ,Integer pageSize);

    ResponseInfo getMtlUS1();

    ResponseInfo getEmployee(PageParam request,String deptName,String name);

    ResponseInfo vendorMoldQuery();

    ResponseInfo stockArea();

    ResponseInfo getVendorCompanyName();

    ResponseInfo getLots(String lot, Integer pageNum, Integer pageSize);

    ResponseInfo getVendorQuery(String vendorNo, String vendorName, PageParam request);

    ResponseInfo getMtlSub(MtlSubRequest request);

    ResponseInfo getMtlType(Integer levelCode, String typeNo);

    ResponseInfo getChangeOfOrderMakerList();

    ResponseInfo getSizeTypeByName();

    ResponseInfo getSlipType();

    ResponseInfo getStitchLine();

    ResponseInfo getStyleQuery(String style);

    ResponseInfo getSlReasonQuery(String type);

    ResponseInfo getMtrQuery(String type, String mtlName, PageParam request);

    ResponseInfo getMtrTypeQuery();

    ResponseInfo getMtrReasonQuery(String type);

    ResponseInfo getStcColQuery(Integer type);

    ResponseInfo getComMtlQuery(LotComMtlRequest request);

    ResponseInfo getLineColQuery();

    ResponseInfo getBaseDetailQuery(String baseType, String itemName);

    ResponseInfo getLastTempQuery(String lastNo);

    ResponseInfo getYfMtlType3();

    ResponseInfo getVendorCompanyNameByCompanyId(String companyId);

    ResponseInfo getMaterialType(String typeNo);

    ResponseInfo getLotNoAndStyle(String lotNo);

    ResponseInfo getLotNo(String lotNo, Integer pageSize, Integer pageNum);

    ResponseInfo getPcCostType(String typeNo, String typeName);

    ResponseInfo getVendorByCondition(SdVendorRequest request);

    /**
     * 获取指令列表
     * @param lotNo 指令号
     * @param request 分页
     * @return 指令集合
     */
    List<String> getRyLots(String lotNo, PageParam request);

    /**
     * 判断指令是否存在
     * @param lotNo 指令号
     */
    void getRyLotCheck(String lotNo);

    /**
     * 判断指令是否存在
     * @param lotNoList 指令号
     */
    void getRyLotCheck(List<String> lotNoList);

    /**
     * 针车员工回显-查询
     * @param request
     * @return
     */
    ResponseInfo getStitchEmployee(PageParam request, String workName, String workId);

    /**
     * 针车工序回显-查询
     * @param request
     * @param process
     * @return
     */
    ResponseInfo getStitchpeProcess(PageParam request, String process);

    /**
     * 针车组别回显-查询
     * @param request
     * @param deptName
     * @param deptNo
     * @return
     */
    ResponseInfo getStitchpeDept(PageParam request, String deptName, String deptNo);

    ResponseInfo getSupplementDept(String searchKey);

    /**
     * 厂商简查
     * @param search 查询条件
     * @param request 分页
     * @return 厂商数据
     */
    PageRecord<Map<String,String>> getVendorSearch(String search, PageParam request);

    /**
     * 研发指令查询
     */
    PageRecord<String> getOrderId(PageParam request, String search);

    ResponseInfo vendorByCI();


    ResponseInfo vendorAllQuery();
}
